package com.healthcloud.service.patient.impl;

import cn.hutool.core.util.StrUtil;
import com.healthcloud.dao.PpPatientBaseDao;
import com.healthcloud.dao.patient.BoneLooseCheckDao;
import com.healthcloud.entity.patient.BoneLooseCheckEntity;
import com.healthcloud.entity.patient.BoneLooseCheckVo;
import com.healthcloud.service.patient.BoneLooseCheckService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

import com.healthcloud.utils.PageParam;
import org.springframework.transaction.annotation.Transactional;

@Service("boneLooseCheckService")
@Transactional
public class BoneLooseCheckServiceImpl implements BoneLooseCheckService {
    @Autowired
    private BoneLooseCheckDao boneLooseCheckDao;

    @Autowired
    private PpPatientBaseDao patientBaseDao;

    @Override
    public BoneLooseCheckEntity queryObject(Integer id) {
        return boneLooseCheckDao.queryObject(id);
    }

    @Override
    public List<BoneLooseCheckEntity> queryList(BoneLooseCheckVo bean, PageParam pageParam) {
        return boneLooseCheckDao.queryList(bean, pageParam);
    }

    @Override
    public int queryTotal(BoneLooseCheckVo bean) {
        return boneLooseCheckDao.queryTotal(bean);
    }

    @Override
    public void save(BoneLooseCheckEntity boneLooseCheck) {
        boneLooseCheckDao.save(boneLooseCheck);
    }

    @Override
    public void update(BoneLooseCheckEntity boneLooseCheck) {
        boneLooseCheckDao.update(boneLooseCheck);
    }

    @Override
    public void delete(Integer id) {
        boneLooseCheckDao.delete(id);
    }

    @Override
    public void deleteBatch(Integer[] ids) {
        boneLooseCheckDao.deleteBatch(ids);
    }

    @Override
    public void saveOrUpdate(BoneLooseCheckEntity entity) {
        if (entity.getId() == null) {
            boneLooseCheckDao.save(entity);
        } else {
            boneLooseCheckDao.update(entity);
        }
        // 根据身份证号，修改骨松分级
        if (StrUtil.isNotBlank(entity.getIdCard()) && null != entity.getBlType()) {
            patientBaseDao.updateBlTypeByIdCard(entity.getBlType(), entity.getIdCard());
        }
    }

    /**
     * 获取骨松患者的最近一次诊疗数据
     *
     * @param idCard 身份证号
     * @return
     */
    @Override
    public BoneLooseCheckEntity getLatestCheckInfo(String idCard) {
        return boneLooseCheckDao.getLatestCheckInfo(idCard);
    }

}